Wireless communication devices are widely used, and have become an essential aspect of modern life. Wireless communication devices such as pagers, mobile phones, text pagers, PDA's (personal data assistants) are used for work, for personal activities, and as a way to keep in contact with family and friends. These wireless device are increasingly available in cars, boats, appliances, and entertainment equipment. As the number and type of these wireless devices increase, application developers continue to provide exciting and innovative applications to make the wireless devices easier to use, and to enhance their usefulness. Further, wireless service providers have invested heavily in infrastructure equipment to support higher data rates to wireless devices, and thereby are enabling a wide range of new and exciting applications.
In one more specific application, wireless mobile handsets have been evolving from primarily voice-communication devices to now support high speed data communication. This evolution has enable the typical wireless handset to now download and play audio and video files using multi-media applications, take and transmit digital photos or video, operate schedulers, address books, and other management applications, as well as a wide range of games and entertainment applications. Also, as wireless handsets further include position location systems, these handsets will enable a whole new class of position-location applications.
These wireless handsets most often access a wireless network according to well defined and well established standards. For example, wireless handsets may operate according to the well-defined CDMA, WCDMA, UMTS, CDMA2000, GSM, EDGE, PHS, AMPS, or other standard. More particularly, these standards have matured to allow for seamless movement within a network, as well as between networks, even when the service providers change. More particularly, the telephony functions operating between the handset and the network are consistently applied and used according to well defined processes. In this way, basic voice communication and basic data transmission may be reliably, robustly, and seamlessly provided to the users of wireless handsets.
Unfortunately, at the application level, there is far less consistency in operation, and far less guidance from the standards. Also, many applications are being advanced by developers who are generally unfamiliar with the complexities of the underlying telephony functions. Accordingly, the deployment of applications has been stymied by a lack of standardization, by inconsistent development and interoperability processes, and by a lack of telephony experience in application developers. This leads to applications that under perform or inconsistently operate. To force their applications into having at least some level of consistent operation, some developers have caused their applications to engage in unnecessarily extensive network communication. Since the application developers do not have an elegant process for interfacing with the telephony functions, the application developers find “work-arounds” and “fixes” that allow their applications to operate, but at the expense of high network traffic and wasted processing power at the handset. For example, many applications require that a home application server communicate with the mobile handsets operating the application. If the application server can not locate a particular mobile handset, then the application fails, leading to user dissatisfaction. In another possible, but undesirable solution, the application server could poll the HLR (Home Location Register) or other network resource. By a server-initiated poll, the server may be able to locate the current location of a particular mobile unit. Such a solution, however, generates significant and undesirable network traffic. Even with such a polling process, the server still loses contact with the mobile for a period of time during the polling process. In such a case, a mobile-initiated activity or request may be lost or ignored. Of course, it is fundamental to the wireless handset that it be allowed to move from one network to another network, and such mobility has been routine for years with the basic telephony functions. In this regard, users have an expectation that their applications, too, will seamlessly and reliably operate irrespective of movement across networks. However, since the application is generally unaware of its network configuration, the application will periodically reinitialize itself to force the handset to re-identify the current network. This reinitialization process uses valuable network bandwidth, as well as interferes with local handset operation.